package Controlador;

import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JOptionPane;
import Modelo.CodeBreaker;
import Modelo.CodeMaster;
import Modelo.Sistema;
import Vista.VistaTablero;
import Vista.VistaPrincipal;
import Vista.VistaConsultas;
import Controlador.ControladorVistaConsulta;
import Vista.Registrar;
import Controlador.ControladorRegistrarJugador;
import Modelo.Tiempo;

public class ControladorVistaTablero implements ActionListener {
	Sistema s;
	VistaTablero vt;
	CodeMaster cm;
	CodeBreaker cb=null;
	VistaPrincipal vp;
	VistaConsultas vc;
	Registrar vr;
	Tiempo t;
	
	public ControladorVistaTablero(VistaTablero vt) {
		this.vt = vt;
		cm = new CodeMaster(vt.getNroColores());
		cb = new CodeBreaker(vt.getIntentos(),vt.getNroColores());
		s = new Sistema();
	}
	

	public void actionPerformed(ActionEvent ae) {
		if(ae.getActionCommand().equals("puntos"))
		{
			new ControladorVistaConsulta();
		}
		if(ae.getActionCommand().equals("salir")){
			vt.setVisible(false);
		}
			if(ae.getActionCommand().equals("Limpiar")){
			vt.resetearColores(cb.getFila());
			cb.reset();
		}else{
			if(ae.getActionCommand().equals("Enviar")){
				if(cb.getColumna() == vt.getNroColores()){
					cb.incluirIntento(vt.getCodigo());
					int resultado[] = cm.compararRespuesta(cb.getUltimo());
					if(resultado[0]==1){
						vt.pararTiempo();
						
						for(int i = 1; i < (cm.getCantColores()+1);i++){
							if(resultado[i]==1){
						
						vt.agregarResultado(Color.BLACK, (cb.getFila()), (i-1));
							}	
							}
						
						vt.mostrarMensaje("Felicitaciones Ganaste");
						//new ControladorRegistrarJugador();
						vt.setVisible(false);
						
						
						// colocar casillas en negro
						
					}else{
						for(int i = 1; i < (cm.getCantColores()+1);i++){
							
							if(resultado[i]==1){
								vt.agregarResultado(Color.BLACK, (cb.getFila()), (i-1));
								
							}
							else
								if(resultado[i]==2)
									vt.agregarResultado(Color.WHITE, (cb.getFila()), (i-1));
						}
					}
					cb.decrementarColumna();
				}else{
					vt.mostrarMensaje("Faltan seleccionar colores");
				}
			}else{
				if(cb.getColumna() < vt.getNroColores()){
					int color = ae.getActionCommand().charAt(0)-'0';
					vt.agregarCodigoColor(color, cb.getColumna());
					vt.agregarColor(s.getColor(color), cb.getFila(),cb.getColumna());
					cb.aumentarColumna();
				}
			}
			
		}//Fin del else principal
	
	}//Fin del actionPerformed

}

